package com.project.bookstore.cart.mapper;


import com.project.bookstore.cart.entity.Cart;
import com.project.bookstore.cart.pojo.CartVO;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;


import java.util.ArrayList;
import java.util.List;

@Mapper
public interface CartMapper {
    /**
     * 根据id删除购物车商品
     * @param
     * @return
     */
     List<CartVO> getCartList();

    /**
     * 根据id删除购物车商品
     * @param id 购物车商品id
     * @return 受影响行数，成功 1 失败 0
     */
     int deleteCartById(Integer id);

    /**
     * 添加购物车
     * @param cart 购物车实体类
     * @return 受影响行数，成功 1 失败 0
     */
    int insert(Cart cart);

    /**
     * 根据用户ID获取购物车数据
     * @param userId
     * @return
     */
    List<CartVO> listByUserId(Long userId);

    List<CartVO> getCartByBookIds(Long[] ids);

    /**
     * 获取用户购物车已有图书id列表
     * @param userId
     * @return
     */
    ArrayList<Long> selectBookIdsByUserId(Long userId);

    /**
     * 批量加入购物车
     * @param cartsNew
     * @return
     */
    int multiAdd(Cart[] cartsNew);

    /**
     * 通过 bookId 查询
     * @param bookId
     * @return
     */
    Cart selectByBookId(Long bookId);

    /**
     * 通过 ID 修改数量
     * @param id
     * @param count
     * @return
     */
    int updateCountById(Integer id, int count);

    /**
     * 批量删除购物车数据
     * @param cartIds
     * @return
     */
    int multiDeleteByIds(Long[] cartIds);
}
